package com.tju.resource.business.tb_order;

import com.tju.resource.model.TbOrder;
import com.tju.resource.result.Result;
import com.tju.resource.tool.tool.ClientParameters;

import java.io.File;
import java.util.List;
import java.util.Map;

public interface TbOrderService {
    /**
     * 查询订单
     *
     */
    public Result<Object> selectTbOrderList(Map<String, String> pa);

    List<TbOrder> byNos(Map<String, Object> pa, List<String> nos);

    /**
     * 添加订单
     */
    public Result<Object> insertTbOrder(TbOrder order);

    /**
     * 修改订单
     */
    public Result<Object> updateTbOrder(TbOrder order);

    /**
     * 删除订单
     */
    public Result<Object> deleteTbOrder(TbOrder order);

    /**
     * 导出订单
     */
    public Result<Object> exportOrder(ClientParameters parameter);

    /**
     * 导入订单
     */
    public Result<Object> importOrder(File file);

    /**
     * 查询唯一订单
     */
    public TbOrder checkOrderNumberUnique(String order);

    /**
     * 根据客户名查询型号
     */
    Result<Object> selectTbCustomerByCustomer(TbOrder tbOrder);

    /**
     * 根据客户名查询型号
     */
    Result<Object> selectByClientName(TbOrder tbOrder);

    /**
     * 查询客户型号是否被其他客户用
     */
    Result<Object> selectExistByClientName(TbOrder tbOrder);

    /**
     *   修改该订单为审核通过
     * @param tbOrder
     * @return
     */
    Result<Object> updateApprove(TbOrder tbOrder);

    /**
     * 根据订单号跟物料号修改重量缺少数量
     */
     boolean updateOrdMatl(String orderNumber, String matlNumber);

    /**
     * 模具修改缓存数量
     * @param id
     * @param withholdingLife
     * @return
     */
     void updateSharper(Long id, Long residualLife, Long withholdingLife);
}